$import("com.joypard.platform.security.role.RoleField");

/**
 * 查询角色组件
 */
K.def("com.joypard.platform.security.role.RoleGridComponent", {

	statics : {
		// 查询角色链接
		URL_selectRoles : $path + "/security/role/selectRoles.do", // 分页加载角色数据
		// 查询应用系统数据源
		URL_getAppSystemBaseInfo : $path + "/system/getAppSystemBaseInfo.do", // 获取所有应用系统基本信息

		/**
		 * 创建主面板
		 */
		createCompoentPanel : function(config) {
			var options = {
				region : "west",
				border : false,
				width : '35%',
				layout : "border",
				items : [ this.createSearchPanel(), this.createRoleGridPanel() ]
			};
			options = K.extend(options, config);
			this.compoentPanel = new K.Ext.Panel(options);
			return this.compoentPanel;
		},
		/**
		 * 获取应用系统数据源
		 */
		getSysAppData : function() {
			var appSystems = null;
			K.ajax({
				type : "GET",
				async : false,
				url : this.URL_getAppSystemBaseInfo,
				success : function(txt) {
					var output = K.createOutput(txt);
					appSystems = output.getParameter("appSystems");
				},
				error : function() {
					alert("不能加载应用系统信息");
				}
			});
			return appSystems;
		},
		/**
		 * 创建上边搜索面板
		 */
		createSearchPanel : function() {
			var options = {
				region : "north",
				iconCls : "p-search",
				frame : true,
				title : "角色查询",
				collapsible : true,
				bodyCssCls : "search-gb",
				contentEl : "the-role-search",
				border : true,
				margins : '0 0 2 0',
			};
			this.searchRolePanel = new K.Ext.Panel(options);
			return this.searchRolePanel;
		},
		/**
		 * 创建角色列表的数据源
		 */
		createRoleStore : function(config) {
			var options = {
				convertRef : true,
				url : this.URL_selectRoles,
				fields : RoleField.fields,
				root : "parameters.roles"
			};
			if (config) {
				options.baseParams = K.extend(options.baseParams, config.baseParams);
			}
			this.roleStore = new K.Ext.data.JsonListStore(options);
			return this.roleStore;
		},
		/**
		 * 创建角色列表
		 */
		createRoleGridPanel : function() {
			var me = this;
			var options = {
				region : "center",
				iconCls : "p-tab",
				title : "角色列表",
				viewConfig : {
					forceFit : true
				}, // 自动分配列宽
				border : true,
				store : this.createRoleStore(),
				sm : new Ext.grid.RowSelectionModel({
					singleSelect : true
				}),
				cm : new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer({
					header : "N.",
					width : 25
				}), {
					width : 1,
					header : "所属应用",
					sortable : true,
					locked : false,
					renderer : function(value, metadata, record) {
						var app = record.get("appSystem");
						return app ? app.appName : "";
					}
				}, {
					id : 'code',
					width : 1,
					header : "角色编码",
					sortable : true,
					locked : false,
					dataIndex : 'code'
				}, {
					width : 1,
					header : "角色名称",
					sortable : true,
					dataIndex : 'name'
				} ]),
				tbar : [ {
					text : "查询",
					iconCls : 'search',
					handler : function() {
						me.roleGridPanel.getStore().load({
							params : K.serializeJson("#the-role-search")
						});
					}
				} ],
				bbar : {
					xtype : "pagination"
				},
				listeners : {
					afterrender : function() {
						this.getStore().load();
					}
				}
			};
			this.roleGridPanel = new K.Ext.grid.GridPanel(options);
			return this.roleGridPanel;
		}
	}
});
